/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.sigu.web;

import java.math.BigDecimal;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import pe.edu.upc.sigu.negocio.service.NotasServive;
import java.util.List;
import pe.edu.upc.sigu.entities.AlumnoCursoSeccion;

import pe.edu.upc.sigu.entities.Alumnos;
import pe.edu.upc.sigu.entities.Carreras;
import pe.edu.upc.sigu.entities.Ciclo;
import pe.edu.upc.sigu.entities.Cursos;
import pe.edu.upc.sigu.entities.NotasAlumnoCurso;
import pe.edu.upc.sigu.entities.Periodos;
import pe.edu.upc.sigu.entities.Personal;
import pe.edu.upc.sigu.entities.Seccion;
import pe.edu.upc.sigu.util.Constant;

/**
 *
 * @author Usuario2
 */
@ManagedBean
@RequestScoped
public class TestService {

    private String prueba;
    @ManagedProperty(value = "#{notasServive}")
    private NotasServive notasServive;

    @PostConstruct
    public void init(){



        List<Periodos> periodosList  = notasServive.getPeriodosList( new Alumnos(1,"2007100180"));
        List<Ciclo> ciclosList = notasServive.getCiclosList( new Alumnos(1,"2007100180"));
        List<Cursos> cursosList = notasServive.getCurosList(new Periodos(1,"20072") ,new Alumnos(1,"2007100180"));
        List<NotasAlumnoCurso> notasCursosList = notasServive.getNotasCurosList(new Periodos(1,"20072") ,new Alumnos(1,"2007100180"));
        for (Ciclo ciclo : ciclosList) {
            System.out.println("ciclo "+ciclo.getDescripcion());
        }
        for (Periodos periodo : periodosList) {
            System.out.println("periodo "+periodo.getDescripcion());
        }
        for (Cursos curso : cursosList) {
                System.out.println("cursos "+curso.getDescripcion());
        }
        for (NotasAlumnoCurso notas : notasCursosList) {
            String desCurso = notas.getAlumnoCursoSeccion().getCursos().getDescripcion();
            String tipo = notas.getNotasAlumnoCursoPK().getTipoExamen();
            BigDecimal nota = notas.getNota();

            System.out.println(" curso :"+ desCurso+" - tpo "+"-"+nota.toString());

        }

        //registro de notas 

        List<Periodos>  listPeriodosDocentes = notasServive.getPeriodosList( new Personal( Constant.INSTITUCION ,"0000000056") );
        System.out.println("docentes y periodos");

        for (Periodos periodo : listPeriodosDocentes) {
            System.out.println(" periodo "+ periodo.getDescripcion());
        }
        System.out.println(" carreras y docentes");

        List<Carreras>  listCarrerasDocentes = notasServive.getCarreras(new Periodos(1,"20111"), new Personal( Constant.INSTITUCION ,"0000000056") );
        for (Carreras carreras : listCarrerasDocentes) {
            System.out.println(" carreas :"+ carreras.getDescripcion());

        }

        System.out.println("secciones y docentes");

        List<Seccion> ListSecciones = notasServive.getSecciones(new Periodos(1,"20111"), new Personal( Constant.INSTITUCION ,"0000000056"), new Carreras("2"));
        for (Seccion seccion : ListSecciones) {
            System.out.println(" seccion :"+seccion.getDescripcion());
        }
        System.out.println("cursos y docentes");
       List<Cursos> cursosDocentesList = notasServive.getCursos(new Periodos(1,"20111"), new Personal( Constant.INSTITUCION ,"0000000056"), new Carreras("2"), new Seccion(Constant.INSTITUCION,"IM01T1"));
        for (Cursos curso : cursosDocentesList) {
            System.out.println(" curso: "+curso.getDescripcion());
        }

        //detalle;

      /* List<Alumnos> alumnosNotasList = notasServive.getAlumnnosNotas(new Periodos(1,"20071"), new Personal( Constants.INSTITUCION ,"0000000049"), new Carreras("2"), new Seccion(Constants.INSTITUCION,"IM01M1"), new Cursos("EG0101"));
        
        for (Alumnos registro : alumnosNotasList) {

            System.out.println("reg :"+registro.getAlumnosPK().getAlumno()+" - "+registro.getPersonas().getApellidoPaterno());

        }*/
        List<AlumnoCursoSeccion> alumnosNotasList = notasServive.getAlumnnosNotas(new Periodos(1,"20071"),  new Carreras("2"), new Seccion(Constant.INSTITUCION,"IM01M1"), new Cursos("EG0101"));

        for (AlumnoCursoSeccion registro : alumnosNotasList) {

            System.out.println("reg :"+registro.getAlumnos().getAlumnosPK().getAlumno()+" - "+registro.getAlumnos().getPersonas().getApellidoPaterno()+"-"+registro.getAlumnos().getPersonas().getApellidoMaterno()+"- "+registro.getAlumnos().getPersonas().getNombres());

            List<NotasAlumnoCurso> notas = (List<NotasAlumnoCurso>) registro.getNotasAlumnoCursoCollection();
            for (NotasAlumnoCurso nota : notas) {
                System.out.println(nota.getNotasAlumnoCursoPK().getTipoExamen()+" - "+nota.getNota().toString());
            }
        }

        NotasAlumnoCurso  _nota =null;
       int result  =  notasServive.actualizarNota(_nota);


    }
    /** Creates a new instance of TestService */
    public TestService() {
    }

    /**
     * @return the notasServive
     */
    public NotasServive getNotasServive() {
        return notasServive;
    }

    /**
     * @param notasServive the notasServive to set
     */
    public void setNotasServive(NotasServive notasServive) {
        this.notasServive = notasServive;
    }

    /**
     * @return the prueba
     */
    public String getPrueba() {
        return prueba;
    }

    /**
     * @param prueba the prueba to set
     */
    public void setPrueba(String prueba) {
        this.prueba = prueba;
    }
}
